home *** CD-ROM | disk | FTP | other *** search
/ Power Hacker 2003 / Power_Hacker_2003.iso / Exploit and vulnerability / hoobie / php_exploit.txt < prev    next >
Text File  |  2001-11-06  |  2KB  |  61 lines

  1.  
  2. [ http://www.rootshell.com/ ]
  3.  
  4. Whilst perusing various things included with the PHP distribution, I
  5. noticed that there was a gaping security hole in a few of the example
  6. scripts, specifically mlog.html and mylog.html, which allow any remote user
  7. to read any arbitrary file on the system. (which is readable to the user
  8. that httpd and thus PHP are running as) To top it all off, this exploit is
  9. really easy to accomplish.
  10.  
  11. The problem lies in the line:
  12.  
  13. <?include "$screen">
  14.  
  15. in both mlog.html and mylog.html.  The idea is to include a file for each
  16. type of logging stats, however, there is no escaping of slashes, so one can
  17. specify any file on the system.
  18.  
  19. The exploit for dummies:
  20.  
  21. http://some.stupid.isp.net/~dumbuser/cool-logs/mlog.html?screen=[fully
  22. qualified path to any file on the system]
  23.  
  24. useful files to see are /etc/hosts.allow, /etc/passwd (for unshadowed
  25. systems..) and just about anything else.
  26.  
  27. Temporary fix:
  28.  
  29. insert the line
  30.  
  31. <?ereg_replace("/","",$screen);>
  32.  
  33. just before the <?include... line.
  34.  
  35. This problem exists in the most current distribution of PHP; I'm willing to
  36. bet that it's been around for a while.  Hopefully, it will be officially
  37. fixed soon... ;)
  38.  
  39. bryan
  40.  
  41.  
  42. ---------------------------------------------------------------------------------
  43.  
  44.  
  45. I wrote that fix without testing it... it does not work, I'm just a little
  46. slow sometimes... ;)
  47.  
  48. Instead of using the ereg_replace line I submitted before, use the
  49. following block of code, again, right before <?include... line.
  50.  
  51. <?if(ereg("\/",$screen)) {
  52.         echo "Permission denied: path may not contain slashes.";
  53.         Exit;
  54.         }
  55. >
  56.  
  57. Sorry about that... this has been confirmed on my machine and does work.
  58.  
  59. bryan
  60.  
  61.